Сын технологий. Роман в пяти годах и тридцати главах. Книга первая - Сергей Березовский
Шрифт:
Интервал:
Закладка:
Частично процессом сборки занимались специальные коммерческие программы, созданные для различных языков и сред программирования, а частично он осуществляется вручную. На крупных проектах в Корпорации этим мог заниматься, как уже говорилось, вообще отдельный человек и уделять данной процедуре значительную часть своего рабочего времени. Андрею в процессе сборки предстояло автоматизировать именно ручную часть. Он разработал небольшую программку на специальном для процесса сборки языке, которая шаг за шагом строила из более мелких блоков более крупные и выстраивала их в одну большую программу. В итоге все блоки соединялись и получалась готовая для распространения Про-система в виде упакованной сборки. Таким образом, по одному нажатию на кнопку весь процесс сборки и упаковки происходил автоматически, оставалось только откинуться на спинку кресла и наблюдать за мелькающими строками протоколов процесса на мониторе.
Затем сборка Про-системы попадала к клиентам на центральный компьютер больницы и начинался процесс развёртывания. Как располагаются на отдыхе, например, на природе? Распаковывают палатку, забивают колышки, разворачивают, натягивают, устанавливают. Собирают мангал из компактно сложенных запчастей. Откупоривают бутылки, разливают по рюмкам водочку, открывают банку с огурцами, раскладывают по пластиковым тарелочкам еду. Аналогичные процессы происходили и с Про-системой. Упакованная сборка вначале попадает на центральный компьютер, и там её распаковывают. Затем создаётся база данных и заполняется необходимой для работы начальной информацией, другими словами – инициализируется. Если база данных в больнице уже существует и активно используется, создавать её заново не нужно. Зато с ней нужно проделать процедуру обновления, чтобы она соответствовала последним изменениям Про-системы, которые появились в ней с момента предыдущего развёртывания. Другими словами, устанавливается новая версия Про-системы. После развёртывания Про-система подключается к базе данных. Если при этом база данных и Про-система физически располагаются на разных компьютерах, то нужно предварительно проверить, не закрыта ли возможность подключения одного компьютера к другому. Как правило, и база, и Про-система располагались на одном компьютере, но предусмотреть нужно было все возможные варианты. Были и другие нюансы. Например, процесс развёртывания слегка различался в зависимости от разновидности используемой операционной системы. И все эти моменты при автоматизации развёртывания нужно было учитывать.
Андрей разработал ещё одну программку, которая осуществляла почти весь процесс развёртывания самостоятельно, с минимальным участием администратора. Но заключительная часть работы, когда администратор проверял работоспособность Про-системы и выполнение ей основных функций, всё же выполнялась вручную. Андрей знал, что существуют специальные программы, которые позволяют автоматизировать и эти проверки, но в рамках задания это было уже излишеством.
Задание было весьма интересным. Андрей активно применял полученный в Корпорации опыт работы и с базами данных, и с развёртыванием программ. Задалбывая Шуру вопросами, он понял, что до конца всех нюансов развёртывания Про-системы не знал даже Шура, причём как в технической части, так и со стороны требований клиентов. В частности, было не совсем понятно, какие конкретно разновидности операционной системы используются в больницах. В процессе развёртывания этот момент был одним из ключевых, но полная информация по клиентам была недоступна. Тем не менее подавляющее большинство возникающих вопросов Шура решал очень оперативно и практически мгновенно.
В процессе общения с Шурой Андрей заметил ещё одну интересную особенность. Несмотря на то что беседы происходили исключительно через интернет, эта деталь от его внимания не ускользнула. А особенность была следующая. Когда до собеседника нужно было донести какую-то мысль, Шура не всегда формулировал её прямо, а старался строить фразы так, чтобы Андрей до этой мысли доходил сам. А уж если совсем никак не доходило, тогда Шура говорил прямым текстом, но всё равно делал это максимально тактично. Андрею очень нравился такой подход, потому что он заставлял думать, анализировать, искать взаимосвязи и в конечном итоге приходить к ответам самостоятельно, а не приучаться получать их от Шуры на блюдечке в готовом для употребления виде.
Автоматизация процессов сборки и развёртывания принесла много пользы и новых практических знаний. Заодно Андрей набил шишек на типичных ошибках развёртывания Про-системы вручную и познакомился с некоторыми её особенностями. Однажды, экспериментируя с функциями Про-системы с подключённым к компьютеру сканером штрих-кодов, он обнаружил, что этот сканер периодически издаёт трель из коротких и писклявых звуков. Андрей тут же вспомнил, как программировал этот сканер несколькими месяцами раньше. Тогда точно такая же трель писков издавалась сканером при подключении, начальном запуске и инициализации его работы. Оказалось, что Про-система сама отключает и подключает устройства при переключении с экрана на экран в разных режимах своего использования. Сканер каждый раз думал, что его подключают заново и издавал соответствующие писки. Поэтому пришлось его временно отключить, чтобы не смущал пользователей своими трелями.
Второй любопытный момент – в системе был обнаружен блок, который никем и никогда не использовался вообще. Это был блок для создания электронных отчётов, который Шура когда-то подключал к Про-системе по требованию заказчика. Андрей попробовал сделать отчёт, но программа немедленно выдала ошибку. Причём на эту ошибку Шура ни разу не получал жалоб от клиентов. Это означало, что реально пользователи никогда не пытались сделать отчёт, функционал для подготовки отчётности не использовали, а блок для отчётов не применялся на практике никогда. В общем, работа обрастала новыми и новыми интересными подробностями, которые лишний раз доказывали, что обратная связь между реальными клиентами и разработчиками функционирует очень странно.
IV
График работы хоть и скорректировался, поскольку на занятия в автошколе нужно было ходить по утрам в выходные дни, Андрей всё равно продолжал сидеть за компьютером ночами и вечерами. В этот период он увлёкся кофе. Кофе оказался доступным, легальным и вполне действенным наркотиком. Банку дешёвого растворимого кофе, который обычно рекламируют по телевизору, можно было купить в любом магазине, и хватало её примерно на неделю. Андрей засыпал несколько ложек, заливал кипятком и добавлял пару ложек сахара сверху. Хотя чай он всегда пил без сахара, горький вкус баночного кофе для него всё же был омерзителен, и нужно было обязательно хотя бы немного подсластить. Несколько глотков – и по телу разливается тепло, ум бодрится, а настроение поднимается вверх. Вдобавок к громко играющей в наушниках музыке любимой группы «Мьюз» напиток выводил на состояние, близкое к эйфории и блаженству. Но продолжалось оно сравнительно недолго, через час-полтора требовалась следующая кружка, потом ещё и ещё. И так до тех пор, пока не почувствуешь, что после следующей кружки вместо подъёма и радости наступает время расплаты. Эйфория спадает, работоспособность тоже резко снижается, появляется раздражительность и трудности с концентрацией. Но уже на следующее утро неприятные ощущения забываются, и всё можно начинать заново.
Кофе можно было попить и между занятиями в автошколе, во время коротеньких перерывов. Автомат в вестибюле на первом этаже наливал небольшую чашечку с дозировкой, как раз достаточной для поддержания сознания в рабочем состоянии до следующего перерыва.
В одну из таких рабочих ночей Андрею неожиданно позвонил отец. Он только что вернулся с какого-то праздника на своей работе и был уже основательно подогрет. Шёл третий час ночи, и такому ночному звонку Андрей был очень удивлён.
– Хотел спросить, как дела, и сказать, что иду спать. Решил, что ты не спишь ещё и работаешь. Программисты же поздно работают.
Андрей горько усмехнулся. Он был рад, что у отца хорошее настроение, но с режимом дня нужно было что-то делать. А то вон уже даже отец так рассуждает, как будто такой график – это в порядке вещей.
Помимо работы и школы хватало и бытовых проблем. Власти затеяли кампанию по установке счётчиков горячей и холодной воды в каждой городской квартире. Распространялась информация о том, что те, кто не установит счётчики, будут платить за воду по повышенным тарифам. Установка продвигалась настолько навязчиво, что сотрудники домоуправления ходили по квартирам и убеждали жильцов поставить счётчики до Нового года. Андрею с этими активистами пересечься не удалось, потому что он обычно на звонки в дверь не реагировал и никому не отвечал, если не договаривался о встрече заранее. Но всё-таки решил, что счётчики лучше поставить, чтобы в будущем избежать повышения тарифов и других потенциальных проблем.